/**
 * yeahmobi.com Inc.
 * Copyright © 2014 YeahMobi | All Rights Reserved.
 */   
    
package com.ndp.fb.rdb.api;

import com.ndp.fb.rdb.model.AdAccountPermission;
import com.ndp.fb.rdb.model.AdaccountPermissionExt;

import java.util.List;

/**
 * @Title: FbUserPermissionRdbService.java
 * @Copyright: Copyright © 2015
 * @Description: 
 * @Company: yeahmobi
 * @Created on 下午4:31:27
 * @author giser.yang
 */

public interface FbUserPermissionRdbService {
	/**
	 * 根据用户和账号查询权限列表
	 * @discription
	 * @author giser.yang       
	 * 创建时间 2015年6月2日 下午4:36:26     
	 * @param adaccountId
	 * @param fbUserId
	 * @return
	 */
	List<AdAccountPermission> getUserpermissions(Long adaccountId,Long fbUserId);
	/**
	 * 获取用户所有的广告账号
	 * @discription
	 * @author giser.yang       
	 * 创建时间 2015年6月3日 下午2:49:55     
	 * @param fbUserId
	 * @return
	 */
	List<AdAccountPermission> getUserpermissionsByFbUserId(Long fbUserId);
	
	/**
	 * 查询用户对指定广告账户在指定的business下的权限仅active status
	 * @discription
	 * @author giser.yang       
	 * 创建时间 2015年6月2日 下午4:36:46     
	 * @param adaccountId
	 * @param fbUserId
	 * @param fbBusinessId
	 * @return
	 */
	AdAccountPermission getUserpermission(Long adaccountId,Long fbUserId,Long fbBusinessId);

	/**
	 * 查询用户对指定广告账户在指定的business下的权限，所有status
	 * @param adaccountId
	 * @param fbUserId
	 * @param fbBusinessId
	 * @return
	 */
	 AdAccountPermission getUserpermissionAllStatus(Long adaccountId, Long fbUserId,
														  Long fbBusinessId);
	/**
	 * 保存指定的权限
	 * @discription
	 * @author giser.yang       
	 * 创建时间 2015年6月2日 下午4:37:45     
	 * @param userPermission
	 * @return
	 */
	Long saveorupdateUserPermission(AdAccountPermission userPermission);
	/**
	 * 删除没有权限的账号
	 * @discription
	 * @author giser.yang       
	 * 创建时间 2015年6月5日 下午7:11:18     
	 * @param userPermission
	 * @return
	 */
	Integer deleteUserPermission(AdAccountPermission userPermission);

	/**
	 * 删除userPermission
	 * @param fbUserId
	 * @return
	 */
	Integer deleteUserPermissionByFbUserId(Long fbUserId);

	Long saveUserPermission(AdAccountPermission userPermission);

	/**
	 * 获取账号的所有用户
	 * @discription
	 * @author giser.yang       
	 * 创建时间 2015年6月3日 下午1:34:12     
	 * @param adaccountId
	 * @return
	 */
	List<AdAccountPermission> getUserpermissions(Long adaccountId);

	/**
	 * 获取当前登录用户下的广告账号
	 * @discription
	 * @author evan
	 * 创建时间 2016年5月18日 下午1:34:12
	 * @param userId
	 * @return
	 */
	List<AdAccountPermission> getUserpermissionsByUserId(String userId);

	/**
	 * 根据广告账号id获取用注册用户信息
	 * @param adaccountId
	 * @return
	 */
	List<AdaccountPermissionExt> getUserpermissionExts(Long adaccountId);

	/**
	 * 根据账号,用户ticket查找
	 * @param adaccountId
	 * @param userId
     * @return
     */
	List<AdaccountPermissionExt> getUserpermissionExts(Long adaccountId,String userId);


}
